range: Fix click detection in slider trace
authorTimm Bäder <mail@baedert.org>
Sat, 20 May 2017 13:04:03 +0000 (15:04 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:13 +0000 (21:27 -0400)
The x/y/ coordinates are relative to the range allocation, so take that
into account.

gtk/gtkrange.c

index 493fda8a9d20ff93a20dc7be8c1540d4888f5545..f8afc2ccfc958018fc4e85444ffd07a8dc7497ad 100644 (file)
@@ -1989,6 +1989,7 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
                 "gtk-primary-button-warps-slider", &primary_warps,
                 NULL);
 
+
   if (priv->mouse_location == priv->slider_widget &&
       gdk_event_triggers_context_menu (event))
     {
@@ -2727,7 +2728,7 @@ gtk_range_update_mouse_location (GtkRange *range)
     priv->mouse_location = priv->grab_location;
   else if (rectangle_contains_point (&slider_alloc, range_alloc.x + x, range_alloc.y + y))
     priv->mouse_location = priv->slider_widget;
-  else if (rectangle_contains_point (&slider_trace, x, y))
+  else if (rectangle_contains_point (&slider_trace, range_alloc.x + x, range_alloc.y + y))
     priv->mouse_location = priv->trough_widget;
   else if (rectangle_contains_point (&range_alloc, range_alloc.x + x, range_alloc.y + y))
     priv->mouse_location = widget;